#pragma once

class CBaseSocket
{
public:
	CBaseSocket();
	virtual ~CBaseSocket();
	virtual bool Start();
	virtual void Stop(bool wait);
	virtual bool IsRunning();
	virtual void ProcThread() = 0;
	__forceinline SOCKET getSocket(){ return sock; }
protected:
	SOCKET sock;
	HANDLE hThread;
	bool stopThread, sockAvailable;
};
